home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / coppers.lha / 3d_CopperDemo.s next >
Encoding:
Text File  |  1993-10-29  |  2.8 KB  |  135 lines

  1.     opt    c-
  2. run:
  3.     movem.l    d0-d7/a0-a6,-(sp)
  4.     move.l    #$50000,a0
  5.     move.l    #2559,d0
  6. clr_bitmap:
  7.     clr.l    (a0)+
  8.     dbra    d0,clr_bitmap
  9.     bsr     makerast
  10.  
  11.     move.l    4,a6
  12.     jsr    -132(a6)
  13.     move.w    #$03f0,$dff096
  14.     move.l    #copperlist,$dff080
  15.     clr.w    $dff088
  16.     move.w    #$83c0,$dff096
  17.     move.w    #$4000,$dff09a
  18.     move.l    $6c,oldirq
  19.     move.l    #irq,$6c
  20.     move.w    #$c010,$dff09a
  21. wait:
  22.     btst    #6,$bfe001
  23.     bne.w    wait
  24.     move.w    #$4010,$dff09a
  25.     move.l    oldirq,$6c
  26.     move.w    #$c000,$dff09a
  27.     move.l    #gfxlib,a1
  28.     move.l    4,a6
  29.     jsr    -408(a6)
  30.     move.l    d0,a4
  31.     move.w    #$03ff,$dff096
  32.     move.l    38(a4),$dff080
  33.     clr.w    $dff088
  34.     move.w    #$83f0,$dff096
  35.     move.l    a4,a1
  36.     jsr    -414(a6)
  37.     jsr    -138(a6)
  38.     movem.l    (sp)+,d0-d7/a0-a6
  39.     rts
  40. irq:
  41.     movem.l    d0-d7/a0-a6,-(a7)
  42.     bsr makerast
  43.     movem.l    (a7)+,d0-d7/a0-a6
  44.     dc.w    $4ef9
  45. oldirq:    dc.l    0
  46. copperlist:
  47.     dc.w    $00e0,$0005,$00e2,$0000,$0102,$0000
  48.     dc.w    $0100,$1200,$0104,$0000,$0108,$0000,$010a,$0000
  49.     dc.w    $008e,$3081,$0090,$30c1,$0092,$0038,$0094,$00d0
  50.     dc.w    $0180,$0000,$0182,$0fff
  51.  
  52. cprlst:
  53.     dc.w $0180,$0000
  54. RasDat: dcb.w 21*4,0
  55.     dc.w $6001,$ff00
  56.     dc.w $0180,$0fff
  57.     dc.w $6101,$ff00
  58.     dc.w $0180,$0000
  59.     dc.w    $ffff,$fffe
  60. gfxlib:
  61.     dc.b    "graphics.library",0
  62.     even
  63.  
  64.  
  65. MakeRast:
  66.  
  67.     lea Offsets,a2
  68.     clr.l d0
  69.     sub.b #2,Map
  70.     bpl nocolscroll
  71.     add.b #1,col
  72.     move.b #7,Map
  73. nocolscroll:
  74.     move.b Map,d0
  75.     mulu #20,d0
  76.     add d0,a2
  77.     lea RasDat,a0
  78.     clr.w d0
  79.  
  80.     move.b col,d0
  81.     move.w #20,d3
  82.     lea Colors,a1
  83. md:
  84.     and.w #127,d0
  85.     move.w d0,d2
  86.     asl.l #1,d2
  87.     clr.w d1
  88.     add.b #1,d0
  89.     move.b (a2)+,d1
  90.     add.b #15,d1
  91.     asl.w #8,d1
  92.     or.w #1,d1
  93.     move.w d1,(a0)+
  94.     move.w #$fffe,(a0)+
  95.     move.w #$0180,(a0)+
  96.     move.w (a1,d2),(a0)+
  97.     dbf d3,md
  98.     rts
  99.  
  100.     even
  101.  
  102. Colors:
  103.     dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  104.     dc.w $000,$100,$200,$300,$400,$500,$600,$700
  105.     dc.w $800,$900,$a00,$b00,$c00,$d00,$e00
  106.     dc.w $f00,$f10,$f20,$f30,$f40,$f50,$f60,$f70
  107.     dc.w $f80,$f90,$fa0,$fb0,$fc0,$fd0,$fe0
  108.     dc.w $ff0,$ef0,$df0,$cf0,$bf0,$af0,$9f0,$8f0
  109.     dc.w $7f0,$6f0,$5f0,$4f0,$3f0,$2f0,$1f0
  110.     dc.w $0f0,$0f1,$0f2,$0f3,$0f4,$0f5,$0f6,$0f7
  111.     dc.w $0f8,$0f9,$0fa,$0fb,$0fc,$0fd,$0fe
  112.     dc.w $0ff,$0ef,$0df,$0cf,$0bf,$0af,$09f,$08f
  113.     dc.w $07f,$06f,$05f,$04f,$03f,$02f,$01f
  114.     dc.w $00f,$10f,$20f,$30f,$40f,$50f,$60f,$70f
  115.     dc.w $80f,$90f,$a0f,$b0f,$c0f,$d0f,$e0f
  116.     dc.w $f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808
  117.     dc.w $707,$606,$505,$404,$303,$202,$101,$000
  118.     
  119. Offsets:
  120.     dc.b  0,16,28,37,44,50,54,58,61,64,66,68,70,72,74,75,76,77,78,79
  121.     dc.b  2,18,29,38,45,50,55,58,61,64,66,68,70,72,74,75,76,77,78,79
  122.     dc.b  4,20,31,39,45,51,55,58,62,64,67,69,71,72,74,75,76,77,78,79
  123.     dc.b  6,21,32,40,46,51,56,59,62,65,67,69,71,72,74,75,76,77,78,79
  124.     dc.b  8,23,33,41,47,52,56,60,62,65,67,69,71,72,74,75,76,77,78,79
  125.     dc.b 10,24,34,42,48,52,56,60,63,65,68,69,71,73,74,75,76,77,78,79
  126.     dc.b 12,25,35,42,48,53,57,60,63,66,68,70,71,73,74,75,76,77,78,79
  127.     dc.b 14,27,36,43,49,54,57,61,63,66,68,70,71,73,74,75,76,77,78,79
  128.  
  129. map:     dc.b 0
  130. col:     dc.b 0
  131.     even
  132. oldsp:     dc.l 0
  133. savecpr: 
  134.     dc.l 0
  135.